[INFO] cloning repository https://github.com/isentropic-dev/rote
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/isentropic-dev/rote" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fisentropic-dev%2Frote", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fisentropic-dev%2Frote'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 8f4dec90075c1bfe2fd7d52eba600793bbff2fe9
[INFO] testing isentropic-dev/rote against master#1f7f8ea0721a3b1eb73e6c6d25cccb371434b320 for pr-154065-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fisentropic-dev%2Frote" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/isentropic-dev/rote
[INFO] finished tweaking git repo https://github.com/isentropic-dev/rote
[INFO] tweaked toml for git repo https://github.com/isentropic-dev/rote written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/isentropic-dev/rote on toolchain 1f7f8ea0721a3b1eb73e6c6d25cccb371434b320
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/isentropic-dev/rote already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded tiff v0.11.3
[INFO] [stderr]   Downloaded zune-jpeg v0.5.13
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 088de3f49582de925030ddfa80031fb3decc9423698a56472f891ad11fb667f7
[INFO] running `Command { std: "docker" "start" "-a" "088de3f49582de925030ddfa80031fb3decc9423698a56472f891ad11fb667f7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "088de3f49582de925030ddfa80031fb3decc9423698a56472f891ad11fb667f7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "088de3f49582de925030ddfa80031fb3decc9423698a56472f891ad11fb667f7", kill_on_drop: false }`
[INFO] [stdout] 088de3f49582de925030ddfa80031fb3decc9423698a56472f891ad11fb667f7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 53ab1bf4666a51593eb931168056789151dc64b235f1f5c37a1c35676fc2c86b
[INFO] running `Command { std: "docker" "start" "-a" "53ab1bf4666a51593eb931168056789151dc64b235f1f5c37a1c35676fc2c86b", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling zerocopy v0.8.42
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling anstyle-parse v1.0.0
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling pxfm v0.1.28
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling sha1 v0.10.6
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling x11rb-protocol v0.13.2
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling clap_lex v1.1.0
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling compact_str v0.8.1
[INFO] [stderr]    Compiling ureq-proto v0.5.3
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling csv-core v0.1.13
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling lru v0.12.5
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling dirs v6.0.0
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling crossterm v0.28.1
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling csv v1.4.0
[INFO] [stderr]    Compiling rustls-webpki v0.103.9
[INFO] [stderr]    Compiling moxcms v0.8.1
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling gethostname v1.1.0
[INFO] [stderr]    Compiling x11rb v0.13.2
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling tokio-macros v2.6.1
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling clap_derive v4.6.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling tungstenite v0.26.2
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling clap v4.6.0
[INFO] [stderr]    Compiling strum v0.26.3
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling instability v0.3.11
[INFO] [stderr]    Compiling ratatui v0.29.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling ureq v3.2.0
[INFO] [stderr]    Compiling image v0.25.10
[INFO] [stderr]    Compiling arboard v3.6.1
[INFO] [stderr]    Compiling tokio-tungstenite v0.26.2
[INFO] [stderr]    Compiling rote v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 08s
[INFO] running `Command { std: "docker" "inspect" "53ab1bf4666a51593eb931168056789151dc64b235f1f5c37a1c35676fc2c86b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "53ab1bf4666a51593eb931168056789151dc64b235f1f5c37a1c35676fc2c86b", kill_on_drop: false }`
[INFO] [stdout] 53ab1bf4666a51593eb931168056789151dc64b235f1f5c37a1c35676fc2c86b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1d83c947085852909725aa4eac8070ccbd606936864d7b9800ea8b3c2bc831ad
[INFO] running `Command { std: "docker" "start" "-a" "1d83c947085852909725aa4eac8070ccbd606936864d7b9800ea8b3c2bc831ad", kill_on_drop: false }`
[INFO] [stderr]    Compiling rote v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 9.01s
[INFO] running `Command { std: "docker" "inspect" "1d83c947085852909725aa4eac8070ccbd606936864d7b9800ea8b3c2bc831ad", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1d83c947085852909725aa4eac8070ccbd606936864d7b9800ea8b3c2bc831ad", kill_on_drop: false }`
[INFO] [stdout] 1d83c947085852909725aa4eac8070ccbd606936864d7b9800ea8b3c2bc831ad
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] b056cfd8505f44a9ef0fa264034acf378763387ad60ee8a6830a3e07bccbe3e4
[INFO] running `Command { std: "docker" "start" "-a" "b056cfd8505f44a9ef0fa264034acf378763387ad60ee8a6830a3e07bccbe3e4", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.19s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/rote-22fcebd6fa90281f)
[INFO] [stdout] 
[INFO] [stdout] running 147 tests
[INFO] [stdout] test cdp::discover::tests::browser_kind_names ... ok
[INFO] [stdout] test cdp::discover::tests::chrome_comes_before_edge ... ok
[INFO] [stdout] test cdp::protocol::tests::browser_version_debugger_url ... ok
[INFO] [stdout] test cdp::discover::tests::candidates_are_not_empty ... ok
[INFO] [stdout] test cdp::protocol::tests::command_serializes_with_params ... ok
[INFO] [stdout] test cdp::protocol::tests::command_serializes_without_params ... ok
[INFO] [stdout] test cdp::protocol::tests::domain_extraction ... ok
[INFO] [stdout] test cdp::protocol::tests::enable_command_format ... ok
[INFO] [stdout] test cdp::protocol::tests::raw_error_response_classifies ... ok
[INFO] [stdout] test cdp::protocol::tests::raw_response_classifies_as_response ... ok
[INFO] [stdout] test cdp::protocol::tests::tab_info_deserializes ... ok
[INFO] [stdout] test data::tests::csv_round_trip ... ok
[INFO] [stdout] test data::tests::empty_cells_preserved ... ok
[INFO] [stdout] test data::tests::empty_data_is_error ... ok
[INFO] [stdout] test data::tests::headers_only_is_error ... ok
[INFO] [stdout] test data::tests::inconsistent_columns_is_error ... ok
[INFO] [stdout] test data::tests::csv_with_quoting ... ok
[INFO] [stdout] test data::tests::single_column ... ok
[INFO] [stdout] test data::tests::no_headers ... ok
[INFO] [stdout] test data::tests::single_row_no_headers ... ok
[INFO] [stdout] test data::tests::single_row_with_headers ... ok
[INFO] [stdout] test data::tests::source_config_serialization ... ok
[INFO] [stdout] test data::tests::trailing_newlines_ignored ... ok
[INFO] [stdout] test data::tests::tsv_round_trip ... ok
[INFO] [stdout] test data::tests::whitespace_only_is_empty ... ok
[INFO] [stdout] test playback::engine::tests::empty_workflow_completes_all_rows ... ok
[INFO] [stdout] test playback::engine::tests::only_walk_speed_gates_rows ... ok
[INFO] [stdout] test playback::engine::tests::finished_event_carries_counts ... ok
[INFO] [stdout] test playback::engine::tests::set_speed_multiplier_applied_in_pending_controls ... ok
[INFO] [stdout] test playback::engine::tests::set_speed_multiplier_clamps_below ... ok
[INFO] [stdout] test playback::engine::tests::row_indices_are_correct ... ok
[INFO] [stdout] test playback::engine::tests::run_with_rejects_insufficient_columns ... ok
[INFO] [stdout] test playback::engine::tests::start_row_is_respected ... ok
[INFO] [stdout] test playback::engine::tests::steps_emit_started_and_completed ... ok
[INFO] [stdout] test playback::engine::tests::step_speed_gates_only_type_steps ... ok
[INFO] [stdout] test playback::engine::tests::walk_and_run_never_gate_steps ... ok
[INFO] [stdout] test playback::execute::tests::column_with_value_types_it ... ok
[INFO] [stdout] test playback::engine::tests::workflow_roundtrip_and_playback ... ok
[INFO] [stdout] test playback::execute::tests::empty_column_default_rule_uses_default ... ok
[INFO] [stdout] test playback::execute::tests::empty_column_no_rule_clears ... ok
[INFO] [stdout] test playback::execute::tests::empty_column_skip_rule_skips ... ok
[INFO] [stdout] test playback::execute::tests::literal_value_always_types ... ok
[INFO] [stdout] test playback::execute::tests::non_empty_column_ignores_rule ... ok
[INFO] [stdout] test playback::execute::tests::out_of_bounds_column_treats_as_empty ... ok
[INFO] [stdout] test playback::resolve::tests::id_resolution_uses_get_element_by_id ... ok
[INFO] [stdout] test playback::resolve::tests::js_returns_true_and_false_branches ... ok
[INFO] [stdout] test playback::resolve::tests::special_characters_are_escaped ... ok
[INFO] [stdout] test playback::resolve::tests::text_content_resolution_uses_get_elements_by_tag_name ... ok
[INFO] [stdout] test playback::resolve::tests::xpath_resolution_uses_evaluate ... ok
[INFO] [stdout] test playback::execute::tests::empty_column_clear_rule_clears ... ok
[INFO] [stdout] test playback::resolve::tests::css_resolution_uses_query_selector ... ok
[INFO] [stdout] test training::core::tests::advance_past_last_row_emits_error ... ok
[INFO] [stdout] test training::core::tests::advance_row_detects_new_field ... ok
[INFO] [stdout] test training::core::tests::advance_row_detects_empty_cell ... ok
[INFO] [stdout] test training::core::tests::advance_row_increments ... ok
[INFO] [stdout] test training::core::tests::build_workflow_includes_row_end_delay ... ok
[INFO] [stdout] test training::core::tests::build_workflow_row_end_delay_zero_when_no_steps ... ok
[INFO] [stdout] test training::core::tests::build_workflow_captures_state ... ok
[INFO] [stdout] test training::core::tests::click_records_a_step ... ok
[INFO] [stdout] test training::core::tests::column_order_binds_leftmost_unbound ... ok
[INFO] [stdout] test training::core::tests::column_order_nudge_rebinds_after_out_of_order_fill ... ok
[INFO] [stdout] test training::core::tests::column_order_skips_non_next_column_match ... ok
[INFO] [stdout] test training::core::tests::direct_click_into_field_then_type_has_no_navigation ... ok
[INFO] [stdout] test training::core::tests::click_then_tabs_then_input_attaches_navigation ... ok
[INFO] [stdout] test training::core::tests::handle_new_field_skips_already_bound_steps ... ok
[INFO] [stdout] test training::core::tests::handle_new_field_out_of_range_emits_error ... ok
[INFO] [stdout] test training::core::tests::first_step_has_zero_delay ... ok
[INFO] [stdout] test training::core::tests::handle_empty_cell_stores_rule ... ok
[INFO] [stdout] test playback::engine::tests::channel_close_stops_engine_at_gate ... ok
[INFO] [stdout] test training::core::tests::handle_new_field_binds_column_and_updates_source ... ok
[INFO] [stdout] test training::core::tests::incremental_typing_clears_pending_navigation ... ok
[INFO] [stdout] test training::core::tests::incremental_typing_does_not_overwrite_navigation ... ok
[INFO] [stdout] test training::core::tests::incremental_typing_updates_step ... ok
[INFO] [stdout] test playback::engine::tests::retry_row_re_executes ... ok
[INFO] [stdout] test training::core::tests::input_binds_a_column ... ok
[INFO] [stdout] test training::core::tests::input_with_no_match_is_literal ... ok
[INFO] [stdout] test training::core::tests::incremental_typing_rebinds_column ... ok
[INFO] [stdout] test training::core::tests::multi_field_tab_chain_uses_previous_field_as_anchor ... ok
[INFO] [stdout] test training::core::tests::navigation_step_captures_delay ... ok
[INFO] [stdout] test training::core::tests::page_navigation_clears_pending_state ... ok
[INFO] [stdout] test training::core::tests::row_complete_with_empty_cells_not_required ... ok
[INFO] [stdout] test training::core::tests::navigation_records_a_step ... ok
[INFO] [stdout] test training::core::tests::step_delays_parallel_steps ... ok
[INFO] [stdout] test training::core::tests::speed_change ... ok
[INFO] [stdout] test training::core::tests::tab_then_click_then_type_preserves_navigation_on_same_element ... ok
[INFO] [stdout] test training::core::tests::tabs_then_input_no_prior_click_has_none_anchor ... ok
[INFO] [stdout] test training::recorder::tests::non_recorder_message_ignored ... ok
[INFO] [stdout] test training::recorder::tests::null_selector_fields_handled ... ok
[INFO] [stdout] test playback::engine::tests::set_speed_during_gate_is_applied ... ok
[INFO] [stdout] test training::recorder::tests::parse_click_event ... ok
[INFO] [stdout] test training::recorder::tests::auto_inject_params_has_source ... ok
[INFO] [stdout] test training::recorder::tests::parse_input_event ... ok
[INFO] [stdout] test training::recorder::tests::non_log_type_ignored ... ok
[INFO] [stdout] test training::recorder::tests::parse_shift_tab_event ... ok
[INFO] [stdout] test training::recorder::tests::parse_tab_event ... ok
[INFO] [stdout] test training::core::tests::tabs_then_click_attaches_navigation_to_click_step ... ok
[INFO] [stdout] test training::core::tests::tabs_with_no_subsequent_interaction_are_discarded ... ok
[INFO] [stdout] test playback::engine::tests::step_speed_gates_after_type_steps ... ok
[INFO] [stdout] test training::recorder::tests::plain_text_message_ignored ... ok
[INFO] [stdout] test tui::table::tests::column_widths_large ... ok
[INFO] [stdout] test tui::table::tests::column_widths_small ... ok
[INFO] [stdout] test playback::engine::tests::stop_action_returns_stopped_error ... ok
[INFO] [stdout] test training::core::tests::incremental_typing_updates_delay ... ok
[INFO] [stdout] test tui::table::tests::column_widths_tall ... ok
[INFO] [stdout] test tui::table::tests::column_widths_wide ... ok
[INFO] [stdout] test tui::table::tests::sanitize_strips_all_control_chars ... ok
[INFO] [stdout] test tui::table::tests::sanitize_strips_escape_sequences ... ok
[INFO] [stdout] test tui::table::tests::set_cell_state_round_trips ... ok
[INFO] [stdout] test tui::table::tests::viewport_last_row_inprogress ... ok
[INFO] [stdout] test tui::table::tests::set_row_state_round_trips ... ok
[INFO] [stdout] test tui::table::tests::new_initializes_all_pending_upcoming ... ok
[INFO] [stdout] test tui::table::tests::viewport_mid_inprogress_scrolls ... ok
[INFO] [stdout] test tui::training::tests::training_command_maps_top_level_navigation ... ok
[INFO] [stdout] test workflow::tests::empty_cell_rule_serialization ... ok
[INFO] [stdout] test workflow::tests::nav_key_serialization ... ok
[INFO] [stdout] test workflow::tests::navigation_path_with_anchor_serialization ... ok
[INFO] [stdout] test workflow::tests::navigation_path_without_anchor_serialization ... ok
[INFO] [stdout] test tui::table::tests::viewport_row0_inprogress_stays_at_top ... ok
[INFO] [stdout] test tui::table::tests::column_widths_deep ... ok
[INFO] [stdout] test workflow::tests::resolution_serialization ... ok
[INFO] [stdout] test workflow::tests::step_click_serialization ... ok
[INFO] [stdout] test workflow::tests::step_type_column_serialization ... ok
[INFO] [stdout] test workflow::tests::playback_speed_default ... ok
[INFO] [stdout] test workflow::tests::step_wait_for_navigation_serialization ... ok
[INFO] [stdout] test workflow::tests::workflow_binding_not_type_step ... ok
[INFO] [stdout] test workflow::tests::validate_rejects_empty_navigation_keys ... ok
[INFO] [stdout] test workflow::tests::playback_speed_serialization ... ok
[INFO] [stdout] test workflow::tests::v2_workflow_deserializes_with_no_navigation ... ok
[INFO] [stdout] test workflow::tests::workflow_invalid_binding ... ok
[INFO] [stdout] test workflow::tests::step_with_navigation_serialization ... ok
[INFO] [stdout] test workflow::tests::workflow_has_version ... ok
[INFO] [stdout] test playback::engine::tests::skip_row_advances_and_counts_skipped ... ok
[INFO] [stdout] test workflow::tests::step_without_navigation_omits_field ... ok
[INFO] [stdout] test workflow::tests::validate_rejects_too_many_navigation_keys ... ok
[INFO] [stdout] test workflow::tests::workflow_delay_length_mismatch ... ok
[INFO] [stdout] test workflow::tests::workflow_delays_round_trip ... ok
[INFO] [stdout] test workflow::tests::workflow_json_is_human_readable ... ok
[INFO] [stdout] test workflow::tests::workflow_omits_empty_optional_fields ... ok
[INFO] [stdout] test workflow::tests::workflow_invalid_empty_cell_rule ... ok
[INFO] [stdout] test workflow::tests::workflow_unsupported_version ... ok
[INFO] [stdout] test workflow::tests::workflow_round_trip ... ok
[INFO] [stdout] test training::core::tests::row_completion ... ok
[INFO] [stdout] test workflow::tests::workflow_column_binding_length_mismatch ... ok
[INFO] [stdout] test workflow::tests::workflow_file_round_trip ... ok
[INFO] [stdout] test playback::engine::tests::speed_change_at_run_takes_effect_between_steps ... ok
[INFO] [stdout] test cdp::protocol::tests::raw_event_classifies_as_event ... ok
[INFO] [stdout] test playback::engine::tests::row_gate_fires_and_blocks ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 147 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.17s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "b056cfd8505f44a9ef0fa264034acf378763387ad60ee8a6830a3e07bccbe3e4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b056cfd8505f44a9ef0fa264034acf378763387ad60ee8a6830a3e07bccbe3e4", kill_on_drop: false }`
[INFO] [stdout] b056cfd8505f44a9ef0fa264034acf378763387ad60ee8a6830a3e07bccbe3e4
